A processor may execute a software program to perform a function. For example, a processor might execute a software program to examine an information packet, to modify the information packet, and/or to forward the information packet toward a destination. Applications known a “development tools” are widely used by developers who write these and other types of software programs. One purpose of a development tool may be to let a software developer look for errors in a software program that is under development. By way of example, a debugging program might simulate the execution of instructions and effectively “freeze” execution of a program at a given instruction. In this way, a developer can inspect the state of the simulation (e.g., by checking the value of a variable or memory content) to gain insight into the workings of the program under examination.
Some processing systems include multiple processors that execute different software programs. The use of multiple processors may result in significant efficiencies, but conventional development tools do not readily allow for simultaneous debugging of software programs that will execute on different processors.